package org.ayatsuji.lifecycledemo;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

/**
 * @author ayatsuji
 * @date 2021-09-24 23:13
 * @since
 */
public class FirstActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.firstactivity_layout);

        // 创建活动时，按 create -> start -> resume顺序触发事件
        Log.d(getName(), "===================on create===================");

        // 打开完全覆盖的活动，会依次触发pause -> stop，返回时触发restart -> start -> resume
        findViewById(R.id.second).setOnClickListener(view -> {
            Intent intent = new Intent(this, SecondActivity.class);
            startActivity(intent);
        });

        // 打开部分覆盖的活动，只触发pause，返回时触发resume
        findViewById(R.id.dialog).setOnClickListener(view -> {
            Intent intent = new Intent(this, DialogActivity.class);
            startActivity(intent);
        });

        // 总结：pause 对应 resume
        //      stop 对应 restart+start

    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d(getName(), "===================on start===================");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d(getName(), "===================on stop===================");

    }

    // 退出活动时按 pause -> stop -> destroy顺序触发事件
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d(getName(), "===================on destroy===================");

    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d(getName(), "===================on pause===================");

    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d(getName(), "===================on resume===================");

    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d(getName(), "===================on restart===================");

    }

    private String getName() {
        return getClass().getName();
    }
}
